package com.mdb.open.trade.domain.ko.trade;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.mdb.bc.api.data.DataObjectBase;
import com.mdb.open.common.enums.trade.status.AttachFileStatusEnum;
import com.mdb.open.common.enums.trade.status.InwardClaimStatusEnum;
import com.mdb.open.common.enums.trade.type.RemittancePurposeTypeEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * @description:
 * @author: you.yichao
 * @create: 2019-07-02 20:14
 **/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@ApiModel(value="InwardClaimPageListKo", description="汇入认领ko对象")
public class InwardClaimPageListKo extends DataObjectBase {

    /**
     * 客户名称
     */
    @ApiModelProperty(value = "客户名称")
    private String customerName;

    /**
     * 商户名称
     */
    @ApiModelProperty(value = "商户名称")
    private String merchantName;
    /**
     * 汇款编号
     */
    @ApiModelProperty(value = "汇款编号")
    private String remitNo;

    /**
     * 核心汇入编号
     */
    @ApiModelProperty(value = "核心汇入编号")
    private String bankInwardNo;

    /**
     * 收款账号
     */
    @ApiModelProperty(value = "收款账号")
    private String receiveAcc;

    /**
     * 汇款账号
     */
    @ApiModelProperty(value = "汇款账号")
    private String remitAcc;

    /**
     * 汇款银行
     */
    @ApiModelProperty(value = "汇款银行")
    private String remitBank;

    /**
     * 汇款到账时间
     */
    @ApiModelProperty(value = "汇款到账时间")
    private LocalDateTime remitDate;

    /**
     * 汇款金额
     */
    @ApiModelProperty(value = "汇款金额")
    private BigDecimal remitAmount;

    /**
     * 认领编号
     */
    @ApiModelProperty(value = "认领编号")
    private String claimNo;

    /**
     * 客户编码
     */
    @ApiModelProperty(value = "客户编码")
    private String customerCode;

    /**
     * 商户编号
     */
    @ApiModelProperty(value = "商户编号")
    private String merchantNo;

    /**
     * 商户业务编号
     */
    @ApiModelProperty(value = "商户业务编号")
    private String businessNo;

    /**
     * 认领金额
     */
    @ApiModelProperty(value = "认领金额")
    private BigDecimal claimAmount;

    /**
     * 币种
     */
    @ApiModelProperty(value = "币种")
    private String ccy;

    /**
     * 用途
     */
    @ApiModelProperty(value = "用途")
    private RemittancePurposeTypeEnum purposes;

    /**
     * 认领类型
     */
    @ApiModelProperty(value = "认领类型")
    private String claimType;

    /**
     * 余额认领
     */
    @ApiModelProperty(value = "余额认领")
    private BigDecimal balance;

    /**
     * 认领时间
     */
    @ApiModelProperty(value = "认领时间")
    private LocalDateTime claimDate;

    /**
     * 费用承担方
     */
    @ApiModelProperty(value = "费用承担方")
    private String chargeBearer;

    /**
     * 附言
     */
    @ApiModelProperty(value = "附言")
    private String details;

    /**
     * 备注
     */
    @ApiModelProperty(value = "备注")
    private String remark;

    /**
     * 状态
     */
    @ApiModelProperty(value = "状态")
    private InwardClaimStatusEnum status;

    /**
     * 还款状态
     */
    @ApiModelProperty(value = "还款状态")
    private String repaymentStatus;

    /**
     * 认领文件状态
     */
    @ApiModelProperty(value = "认领文件状态")
    private AttachFileStatusEnum fileStatus;

    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    @ApiModelProperty(value = "更新时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
    private LocalDateTime updateTime;

}
